import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
/**Clase contenedora de mi metodo main que arranca el programa
 * 
 * @author panche
 *
 */
public class Main {

	/**metodo main de mi programa (pide la ruta de un fichero y lee su contenido en las cantidad de caradteres
	 * deseados por linea.
	 * @param args
	 */
	public static void main(String[] args) throws Exception {
		//Introduzco la Ruta
		System.out.println("Ruta del fichero a leer: ");
		Scanner sc = new Scanner(System.in);
		String ruta = sc.next();
		File archivo = new File(ruta);
		
		System.out.println("cantirad de caracteres que desea leer a la vez: (numero <0 lectura por defecto)");
		sc.reset();
		
		//Intento leer el archivo
		if(archivo.exists()){
			int aux = sc.nextInt();
		if(aux>0)leerArchivo(archivo,aux);
		else leerArchivo(archivo);
		}
		else{
			System.out.println("La Ruta puede ser incorrecta");
		}
	}
	/**Metodo para leer el contenido de un archivo
	 * 
	 * @param archiv archivo a leer
	 * @param x caracteres a leer por salto de linea
	 */
	public static void leerArchivo(File archiv,int x)
	{
		char[] buffer = new char[x];
		FileReader lector = null ;
		
		try {
			lector = new FileReader(archiv);
			while((lector.read(buffer)) != -1){
				
				System.out.print(buffer);					
				System.in.read();
				System.in.read();
			}
		} catch (IOException e) {
			System.out.println("No se puede leer el archivo");
		}
		finally{
			try {
				lector.close();
			} catch (Exception e) {
				System.out.println("No se puede cerrar el archivo");
			}
		}
	}
	/** Metodo para leer el contenido de un archivo por defecto en 20 caracteres por linea
	 * 
	 * @param archiv archivo a leer
	 */
	public static void leerArchivo(File archiv)
	{
		char[] buffer = new char[20];
		FileReader lector = null ;
		
		try {
			lector = new FileReader(archiv);
			while((lector.read(buffer)) != -1){
				
				System.out.print(buffer);					
				System.in.read();
				System.in.read();
			}
		} catch (IOException e) {
			System.out.println("No se puede leer el archivo");
		}
		finally{
			try {
				lector.close();
			} catch (Exception e) {
				System.out.println("No se puede cerrar el archivo");
			}
		}
	}
}
